import actionType from './actionType'

// action 的写法

// export const add = {
//     type: actionType.CART_AMOUNT_INCREMENT
// }
// export const reduce = {
//     type: actionType.CART_AMOUNT_DECREMENT
// }

export const add = (id) => {
    return {
        type: actionType.CART_AMOUNT_INCREMENT,
        payload: {
            id
        }
    }
}
export const reduce = (id) => {
    return {
        type: actionType.CART_AMOUNT_DECREMENT,
        payload: {
            id
        }
    }
}


// 异步，在actions中写, 使用中间件 middleware ---> redux-thunk , 在 store.js中 ，createStore的时候传入第二个参数 rehuxthunk
// 使用了 redux-thunk 之后，就可以在 actionCreator 里return一个方法，这个方法参数是 dispatch
// export const addAsync = (id) => {
//     // 模拟异步
//     return (dispatch) => {
//         setTimeout(() => {
//             dispatch(add(id))     // dispatch一个同步方法
//         }, 2000)
//     }
// }
// ==   简化后
export const addAsync = id => dispatch => {
    setTimeout(() => {
        dispatch(add(id)) 
    }, 2000)
}